package org.listbeast.core.common;

import java.util.Date;
import java.util.Locale;

public interface ApplicationInformation {

    /**
     * Get the current logical name of the application
     * @return the logical name of the application
     */
    String getApplicationName();
    
    /**
     * Get the current application version
     * @return the application version, or empty string if none is existing
     */
    String getApplicationVersion();
    
    /**
     * Get a human readable string that describes the operating system on which this application instance is running
     * @return a human readable string that describes the operating system on which this application instance is running
     */
    String getOperatingSystemInformation();

    /**
     * Get a human readable string that describes the java virtual machine on which this application instance is running
     * @return a human readable string that describes the java virtual machine on which this application instance is running
     */
    String getJavaVirtualMachineInformation();
    
    /**
     * Get the date when the current application instance was started
     * @return the date when the current application instance was started
     */
    Date getStartTime();
}
